﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace TandvardsstodApp.Personkrets
{
    //****************************
    // Tandvårdsstöd - Projektet
    // Författare: Safin Hassan
    // Datum: 2012-04-08
    //****************************

    public partial class LaggtillPerson : System.Web.UI.Page
    {
        ServiceReference1.Service1Client client = new ServiceReference1.Service1Client();

        /// <summary>
        /// Fyller kontroller med värden och manipulerar till "readonly".
        /// Triggas när sidan laddas.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            //Fyller kontroller med värden och manipulerar till "readonly".
            System.Data.DataSet dataSetValue = client.GetScalarQueryMaxKortnummer();
            System.Data.DataTable table = dataSetValue.Tables[0];
            TxtKortnummer.Text = table.ToString();
            TxtKortnummer.ReadOnly = true;

            DateTime tid = DateTime.Today;
            TxtInregistreringsdatum.Text = tid.ToShortDateString().ToString();
            TxtInregistreringsdatum.ReadOnly = true;
        }


        /// <summary>
        /// Söker i befolkningsregistret och checkar mot sök termen.
        /// Om person inte hittas vissas ett fel meddelande
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnSokIOLL_Click(object sender, EventArgs e)
        {
            if(IsPostBack)
            {
                //hämtar sök resultatet via wcf:en 
                System.Data.DataSet dataSetValue = client.GetDataByPersonnummer(TxtSokIOLL.Text);
                System.Data.DataTable table = dataSetValue.Tables[0];
                try
                {
                    //skriver ett meddelande om person finns i befolkningsregistret
                    if (table.Rows[0][1].ToString() == TxtSokIOLL.Text)
                        LblSokResultatOLL.Text = "<b>Personen finns i ÖLL</b>";

                    //fyller kontrollerna med värden från sök resultatet
                    TxtPersonnummer.Text = table.Rows[0][1].ToString();
                    TxtFornamn.Text = table.Rows[0][2].ToString();
                    TxtEfternamn.Text = table.Rows[0][3].ToString();
                    TxtGatuadress.Text = table.Rows[0][4].ToString();
                    TxtPostnummer.Text = table.Rows[0][5].ToString();
                    TxtOrt.Text = table.Rows[0][6].ToString();
                    
                }
                catch {
                    //Ger meddelande via en popup fönster om person inte hittas i befolkningsregistret
                    ScriptManager.RegisterStartupScript(BtnSokIOLL, BtnSokIOLL.GetType(), "alertscript", "alert(" + '"' + "Personnummret finns inte i ÖLL" + '"' + ")", true);
  
                }
                   
            }
        }

        /// <summary>
        /// Rensar kontrollerna från ifyllda värden
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnRensa_Click(object sender, EventArgs e)
        {
            TxtSokIOLL.Text = "";
            TxtPersonnummer.Text = "";
            TxtFornamn.Text = "";
            TxtEfternamn.Text = "";
            TxtGatuadress.Text = "";
            TxtPostnummer.Text = "";
            TxtOrt.Text = "";
            TxtBoende.Text = "";
            TxtKommentar.Text = "";
            TxtSokIOLL.Focus();
        }

        /// <summary>
        /// Sparar uppgifter om person i personTablen.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void BtnSpara_Click(object sender, EventArgs e)
        {
            // Avbryt eventen om kontrollernas värden är ogiltiga.(för äldre webbläsare)
            if (!Page.IsValid) return;

            try
            {
                client.InsertIntoPersoner(int.Parse(TxtKortnummer.Text), TxtPersonnummer.Text, TxtFornamn.Text, TxtEfternamn.Text,
                 TxtGatuadress.Text, TxtPostnummer.Text, TxtOrt.Text, short.Parse(DdlGrupp.SelectedItem.Text),
                 int.Parse(DdlKommun.SelectedValue), ChkIntygUtsand.Checked, TxtKommentar.Text, 12, ChKAvliden.Checked,
                 false, ChkInygBestalld.Checked, TxtBoende.Text, DdlMunhalsobedomning.SelectedItem.ToString(), false, DateTime.MinValue, null,
             DateTime.Parse(TxtInregistreringsdatum.Text), DateTime.MinValue, ChkAvford.Checked, DdlAnbudsomrade.SelectedItem.ToString(), null);

                //Ger meddelande via en popup fönster om person uppgifterna sparades
                ScriptManager.RegisterStartupScript(BtnSpara, BtnSpara.GetType(), "alertscript", "alert(" + '"' + "Person uppgifterna är sparad" + '"' + ")", true);
            }
            catch{
                //Ger meddelande via en popup fönster om person uppgifterna ej sparades
                ScriptManager.RegisterStartupScript(BtnSpara, BtnSpara.GetType(), "alertscript", "alert(" + '"' + "Person uppgifterna kunde inte sparas! Försök igen!" + '"' + ")", true);
            }
        }
    }
}